#ifndef SLAM_AUTHENTICATE_HARDWARE_ID_H_
#define SLAM_AUTHENTICATE_HARDWARE_ID_H_

#include <string>

namespace slam {
namespace authenticate {

/// \brief 授权管理模块
class HardwareId {
 public:
  /// \brief 根据控制器设备硬件生成设备ID
  HardwareId(bool disk_enable, bool bios_enable, bool mac_enable);

  /// \brief 根据控制器硬件和extern_info 生成设备ID
  HardwareId(bool disk_enable, bool bios_enable, bool mac_enable,
             const std::string& extern_info);
  HardwareId(const HardwareId&) = delete;
  HardwareId& operator=(const HardwareId&) = delete;
  ~HardwareId() {}

  std::string GetId();

 private:
 private:
  std::string m_id;
};

}  // namespace authenticate
}  // namespace slam

#endif  // SLAM_AUTHENTICATE_HARDWARE_ID_H_